package aep

import "encoding/json"

//注册设备
type RegisterDeviceReq struct {
	ProductID  int    `json:"productId"`  // 产品ID，必填
	Imei       string `json:"imei"`       //imei号，LWM2M,NB网关协议必填
	DeviceName string `json:"deviceName"` //设备名称，必填
	DeviceSn   string `json:"deviceSn"`   //设备编号，MQTT,T_Link,TCP,HTTP,JT/T808，南向云协议必填
	Operator   string `json:"operator"`   //操作者，必填
	Other      struct {
		AutoObserver int `json:"autoObserver"`
	} `json:"other"`
}

func (this *RegisterDeviceReq) toString() string {
	bs, _ := json.Marshal(this)
	return string(bs)
}

//DataType int    `json:"dataType"` //数据类型：1字符串，2十六进制
//		Payload  string `json:"payload"`  //指令内容,数据格式为十六进制时需要填十六进制字符串,
type SendDeviceReq struct {
	Content   interface{} `json:"content"`   //指令内容，必填，格式为Json。
	DeviceID  string      `json:"deviceId"`  //设备ID，（当指令级别为设备级时必填，为设备组级时则不填）
	Operator  string      `json:"operator"`  //操作者，必填
	ProductID string      `json:"productId"` //产品ID，必填
	TTL       int         `json:"ttl"`       //设备离线时指令缓存时长，选填。单位：秒，取值范围：0-864000。不携带则默认值：7200。如不需缓存请填0。
	Level     int         `json:"level"`     //指令级别，1或2为设备级别,3为设备组级别，选填。不填默认设备级。
}

func (this *SendDeviceReq) toString() string {
	bs, _ := json.Marshal(this)
	return string(bs)
}

type DefContent struct {
	DataType int    `json:"dataType"` //数据类型：1字符串，2十六进制
	Payload  string `json:"payload"`  //指令内容,数据格式为十六进制时需要填十六进制字符串,
}
